Non-volatile data storage devices, such as embedded memory devices and removable memory devices, have enabled increased portability of data and software applications. For example, multi-level cell (MLC) flash memory devices may store multiple bits in each flash memory cell, enhancing data storage density. Data stored at such devices may be encoded using error correcting coding (ECC) techniques that protect the data from errors associated with power supply noise, temperature variations, and other causes of data corruption. In some cases, the ECC techniques may be insufficient to recover corrupted data. For example, data corruption may exceed an ECC capability associated with the particular ECC technique used to encode the data, causing data loss.